package com.foreknow.demo18;

import java.sql.*;
import java.util.Date;

/**
 * Jdbc
 */
public class DBUtil {
    public static void main(String[] args) {
        try {
            //1.加载驱动程序
            //如果是8.0以上的版本需要使用 com.mysql.cj.jdbc.Driver
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接
            //8.0以上：jdbc:mysql://localhost:3306/basic2?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
            //8.0以下版本：jdbc:mysql://localhost:3306/basic2
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/basic2","root","123456");
            //获取到statement对象 作用主要是用于执行sql语句的
            Statement stmt = conn.createStatement();
            //调用Statement接口中的方法
            //1. ResultSet（结果集：保存查询结果的） executeQuery(String sql) 执行给定的 SQL 语句，该语句返回单个 ResultSet 对象。
            //2. int executeUpdate(String sql) 执行给定 SQL 语句，该语句可能为 INSERT、UPDATE 或 DELETE 语句，或者不返回任何内容的 SQL 语句（如 SQL DDL 语句）。
            //ResultSet rs = stmt.executeQuery("select * from emp");
            //获取结果集中的数据 next（）方法是将光标向下移动一行(获取当前行的数据)
//            while (rs.next()) {
//                //获取当前行的empno所对应的值
//                int empno = rs.getInt("empno");
//                String ename = rs.getString("ename");
//                String job = rs.getString("job");
//                Date d =  rs.getDate("hiredate");
//                System.out.println(empno+"---"+ename+"---"+job+"---"+d);
//            }
            //完成DML（insert delete update）操作  成功返回1   不成功返回0
//            conn.setAutoCommit(false);
              //int isRigth = stmt.executeUpdate("delete from emp where empno=1018");
//            conn.commit();
              //System.out.println(isRigth);
             //int isRight = stmt.executeUpdate("insert into emp(empno,ename,job) values(9999,'fender','music')");
             //System.out.println(isRight);
             int isRigth = stmt.executeUpdate("update emp set ename = 'xxx',job = 'song' where empno = 9999");
             System.out.println(isRigth);
            //释放资源
            //rs.close();
            stmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
